TypeScript の satisfies ってなんだよ
TypeScript の satisfies 演算子は何に役立つのか
code:ts
type User = { email: string };
// ⭕: { email: string } 型
const jane = { email: "jane@example.com" } satisfies User;
// ❌: Object literal may only specify known properties, and 'id' does not exist in type 'User'.
const john = { email: "john@example.com", id: 1 } satisfies User;
// annotation: User 型
const taro: User = { email: "taro@example.com" };
型アノテーションとは異なり元の型は残る
satisfies のいい感じの使いどころ
オブジェクトのキーが充足しているかをチェック
型推論を残して型の可読性を高める
オブジェクトのキーが充足しているかをチェック
code:ts
type Color = "red" | "green" | "blue";
const palette = {
red: 255, 0, 0,
green: "#00ff00",
blue: "#0000ff",
} satisfies Record<Color, unknown>;
const wip_palette = {
green: "#00ff00",
blue: "#0000ff",
} satisfies Record<Color, unknown>;
const asserted_palette = {
red: 255, 0, 0,
green: "#00ff00",
blue: "#0000ff",
} as Record<Color, unknown>;
TypeScript
#ってなんだよ
ナイトウ scrap